package com.hr.service;

import com.hr.domain.dto.AiHouseDTO;
import com.hr.domain.dto.HouseDTO;
import com.hr.domain.query.HousePageResult;
import com.hr.domain.query.HouseQueryParams;
import com.hr.domain.vo.AiHouseVO;
import com.hr.domain.vo.HouseVO;
import com.hr.utils.Result;

import java.util.List;

/**
* @author 86150
* @description 针对表【house(房源表)】的数据库操作Service
* @createDate 2025-09-23 14:20:06
*/
public interface HouseService {

    /**
     * 获取房屋列表
     * @return List<HouseVO>
     */
    List<HouseVO> getHouseList();

    /**
     * 获取房屋分页列表
     * @param queryParams 查询参数
     * @return HousePageResult
     */
    HousePageResult getHousePageList(HouseQueryParams queryParams);

    /**
     * 新增房屋
     * @param id , status
     * @return String
     */
    String updateHouseStatus(Long id, Integer status);

    /**
     * 发布房屋
     * @param houseDTO
     * @return String
     */
    String publishHouse(HouseDTO houseDTO);

    /**
     * 删除房屋
     * @param id
     * @return String
     */
    Result deleteHouseById(Integer id);

    /**
     * 获取房屋朝向列表
     * @return List<String>
     */
    List<String> selectAllOrientation();

    /**
     * 修改房屋租价
     * @param id, rent
     * @return String
     */
    String updateHouseRent(Long id, Double rent);

    /**
     * 获取所有房屋id
     * @return List<Long>
     */
    List<Long> getAllHouseId();

    /**
     * 修改房屋信息
     * @param houseDTO
     * @return String
     */
    String editHouse(HouseDTO houseDTO);

    /**
     * 根据id获取房屋信息
     * @param id
     * @return HouseVO
     */
    HouseVO getHouseById(Long id);

    /**
     * 批量删除房屋
     * @param ids
     * @return String
     */
    String batchDeleteHouse(List<Long> ids);

    /**
     * 获取房屋详情
     *
     * @param aiHouseDTO
     * @return AiHouseVO
     */
    List<AiHouseVO> getHouseDetailForAI(AiHouseDTO aiHouseDTO);
}
